/* eslint-disable */

import { AxiosRequestConfig } from 'axios';
import { request } from '../../utils/request';

export interface PostConfTrackPaymentAddAndUpdateRes {
  code: string; // 返回编码
  msg: string; // 返回消息
  data: {};
  traceId: string;
}

/**
 * 新增 && 编辑 付费配置策略
 */
export async function postConfTrackPaymentAddAndUpdate(
  data?: any,
  config?: AxiosRequestConfig,
): Promise<PostConfTrackPaymentAddAndUpdateRes> {
  return request(data, {
    url: '/confTrackPayment/addAndUpdate',
    method: 'post',
    ...config,
  });
}

export interface PostConfTrackPaymentPageRes {
  code: string; // 返回编码
  msg: string; // 返回消息
  data: {
    current: number;
    pageSize: number;
    total: number;
    list: Array<{
      paymentModeName: string;
      id: number; // 流水号
      trackList: string; // 歌曲列表，逗号分隔
      beginTime: string; // 定时执行开始时间，执行时间，如果为空立刻执行
      paymentModeId: number; // 付费模式id
      valid: number; // 是否生效
      operator: string; // 操作人名称
      remarks: string; // 备注
      excuteStatus: number; // 执行状态
      excuteResult: string; // 执行结果
      insertTime: string; // 插入时间
      modifyTime: string; // 修改时间
      paymentMark: number; // 付费备注
      paymentMarkDesc: string; // 付费备注说明
      paymentNotify: number; // 付费文案
      paymentReason: number; // 付费 3.0 原因
      confType: number; // 配置类型
      platType: number; // 平台类型
      linkId: number; // 关联的配置表ID
    }>;
  };
  traceId: string;
}

/**
 * 分页查询
 */
export async function postConfTrackPaymentPage(
  data?: any,
  config?: AxiosRequestConfig,
): Promise<PostConfTrackPaymentPageRes> {
  return request(data, {
    url: '/confTrackPayment/page',
    method: 'post',
    ...config,
  });
}

export interface GetConfTrackPaymentIdRes {
  code: string; // 返回编码
  msg: string; // 返回消息
  data: {
    isLimitFree: boolean; // 是否限时免费 true 限时免费 false 无限免
    limitFreeDuration: number; // 限免期（单位：天）
    freeBeginTime: string; // 限免起始时间
    id: number; // 流水号
    trackList: string; // 歌曲列表，逗号分隔
    beginTime: string; // 定时执行开始时间，执行时间，如果为空立刻执行
    paymentModeId: number; // 付费模式id
    valid: number; // 是否生效
    operator: string; // 操作人名称
    remarks: string; // 备注
    excuteStatus: number; // 执行状态
    excuteResult: string; // 执行结果
    insertTime: string; // 插入时间
    modifyTime: string; // 修改时间
    paymentMark: number; // 付费备注
    paymentMarkDesc: string; // 付费备注说明
    paymentNotify: number; // 付费文案
    paymentReason: number; // 付费 3.0 原因
    confType: number; // 配置类型
    platType: number; // 平台类型
    linkId: number; // 关联的配置表ID
  };
  traceId: string;
}

/**
 * 获取定时付费策略详情
 */
export async function getConfTrackPaymentId(
  id: string | number,
  data?: any,
  config?: AxiosRequestConfig,
): Promise<GetConfTrackPaymentIdRes> {
  return request(data, {
    url: `/confTrackPayment/${id}`,
    method: 'get',
    ...config,
  });
}
